var express = require('express');
var router = express.Router();
let jwt = require('jsonwebtoken')
const Core = require('@alicloud/pop-core'); // 引入阿里云 SDK
let {UserM} =require('../../modules/long')
let md5 = require('md5-node');
// /* GET home page. */

const client = new Core({ // 创建 Client 对象
    accessKeyId: 'LTAI5tGmPWGEyjUq4si4QrzW', // 替换成自己的 AccessKey ID
    accessKeySecret: '3aMlaGLclmIhGsrMHbVmVWFApEwXg4', // 替换成自己的 AccessKey Secret
    endpoint: 'https://dysmsapi.aliyuncs.com', // API 访问入口，根据实际情况修改
    apiVersion: '2017-05-25' // API 版本号，根据实际情况修改
});


let yanzhengma = ''
// 生成随机验证码
function generateCode() {
  const code = Math.floor(Math.random() * (9999 - 1000 + 1)) + 1000;
//   yanzhengma = code.toString()
  return code.toString();
}


// // 发送短信验证码
router.post('/url', (req, res) => {
    const phoneNumber = req.body.phone; // 获取手机号码
    const code = generateCode(); // 生成验证码
    yanzhengma = code // 找回密码的校验，yanzhengma存储的是生成的验证码
    const params = {
      "RegionId": "cn-hangzhou", // 短信服务所在区域，可以参考阿里云文档
      "PhoneNumbers": phoneNumber, // 目标手机号码
      "SignName": "蔬菜交易平台", // 短信签名名称，需先在阿里云控制台中申请审核通过
      "TemplateCode": "SMS_475800490", // 短信模板 CODE，需先在阿里云控制台中申请审核通过
      "TemplateParam": JSON.stringify({ // 短信模板参数，为 JSON 字符串格式
        "code": code // 模板中的变量名和对应的值
      })
    };
   console.log(phoneNumber,code,params,111111111111111111111);
    const requestOption = { // 设置请求超时时间等选项
      method: 'POST',
      timeout: 5000
    };
    // 调用 SendSms 方法发送短信
    client.request('SendSms', params, requestOption).then((result) => {
      console.log(result,22222222222222222222222); // 打印发送结果
      
      res.send({ // 返回状态码和生成的验证码
        message: '验证码已发送，请注意查收！',
        code: 200,
        data:code
      });
    }, (ex) => {
      console.log(ex); // 打印异常信息
   
      res.status(500).json({ // 返回错误状态码和错误信息
        code:405,
        message: '短信发送失败，请稍后重试！'
      });
    });
  });


  router.post('/sjhlogin', (req, res) => {
    const phoneNumber = req.body.phoneNumber; // 获取手机号码
    const inputCode = req.body.code; // 获取用户输入的验证码
    const generatedCode = req.body.generatedCode; // 获取之前生成的验证码
   
    console.log(inputCode)
    console.log(generatedCode)
    if (inputCode === generatedCode) { // 验证码一致，登录成功
      let userInfo={
        name:phoneNumber
      }
      let accessToken = jwt.sign(userInfo,'abcdefg',{expiresIn:'3s'})
      let refreshToken = jwt.sign(userInfo,'abcdefg',{expiresIn:'7d'})
      res.send({
        code: 200,
        message: '登录成功！',
        data:{
          accessToken,
          refreshToken
        }
      });
    } else { // 验证码不一致，登录失败
      res.send({
        code: 201,
        message: '验证码错误，请重新输入！'
      });
    }
});

router.post('/yzmzh', (req, res) => {
  const phoneNumber = req.body.phoneNumber; // 获取手机号码
  const inputCode = req.body.code; // 获取用户输入的验证码
  const generatedCode = req.body.generatedCode; // 获取之前生成的验证码
 
  console.log(inputCode)
  console.log(generatedCode)
  if (inputCode === generatedCode) { // 验证码一致，登录成功
    res.send({
      code: 200,
      message: '登录成功！',
      data:true
    });
  } else { // 验证码不一致，登录失败
    res.send({
      code: 201,
      message: '验证码错误，请重新输入！',
      data:false
    });
  }
});

router.post('/postpawd',async(req, res) => {
  let {username,pawdname} =req.body
  await UserM.updateOne({username},{pawdname})
  res.send({
    code:200
  })
});

router.post('/zhuc',async(req,res)=>{
  let {name,cellPhone,newPass,sex,age,pcstate,sjstate,image}=req.body
  let newPasss=md5(newPass)
  let data=await UserM.find({username:cellPhone})
  if(data.length<=0){
    await UserM.create({username:cellPhone,pawdname:newPasss,name:name,sex,age,image,pcstate,sjstate})
    res.send({
      code:200,
    })
    return true
  }
  res.send({
    code:404,
    msg:'账号已被注册'
  })
})

module.exports = router;